home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume6 / xfig2 / patch6.4 < prev    next >
Encoding:
Internet Message Format  |  1993-04-28  |  52.7 KB

  1. From: envbvs@epb2.lbl.gov (Brian V. Smith)
  2. Newsgroups: comp.sources.x
  3. Subject: v06i084: xfig 2.0, Patch6, Part04/06
  4. Message-ID: <134790@sun.Eng.Sun.COM>
  5. Date: 24 Apr 90 22:28:04 GMT
  6. Approved: argv@sun.com
  7.  
  8. Submitted-by: envbvs@epb2.lbl.gov (Brian V. Smith)
  9. Posting-number: Volume 6, Issue 84
  10. Archive-name: xfig2/patch6.4
  11. Patch-To: xfig2: Volume 6, Issues 9-24, 34-36, 50-56
  12.  
  13. #! /bin/sh
  14. # This is a shell archive.  Remove anything before this line, then unpack
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of archive 4 (of 6)."
  20. # Contents:  FORMAT2.0.diff line.c.diff panel.c.diff psbits.c.diff
  21. #   read1_3.c.diff
  22. # Wrapped by envbvs@epb2.lbl.gov on Tue Apr 24 11:56:47 1990
  23. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  24. if test -f 'FORMAT2.0.diff' -a "${1}" != "-c" ; then 
  25.   echo shar: Will not clobber existing file \"'FORMAT2.0.diff'\"
  26. else
  27. echo shar: Extracting \"'FORMAT2.0.diff'\" \(10098 characters\)
  28. sed "s/^X//" >'FORMAT2.0.diff' <<'END_OF_FILE'
  29. X*** FORMAT2.0.old    Tue Apr 24 11:48:03 1990
  30. X--- FORMAT2.0    Thu Apr 12 18:07:41 1990
  31. X***************
  32. X*** 0 ****
  33. X--- 1,286 ----
  34. X+ The following is the format of fig output for Protocol version 2.0:
  35. X+ 
  36. X+ (1) The very first line is a comment line containing the name and version:
  37. X+     #FIG 2.0
  38. X+ 
  39. X+     The character # at the first column of a line indicates that the line
  40. X+     is a comment line which will be ignored.
  41. X+ 
  42. X+ (2) The first non-comment line consists of two numbers :
  43. X+ 
  44. X+     int    fig_resolution        (pixels/inch)
  45. X+     int    coordinate_system    (1 : origin is at the lower left corner
  46. X+                      2 : Upper left)
  47. X+ 
  48. X+     Fig_resolution is the resolution fig is using for the current file.
  49. X+     It may not be the same as screen resolution (which can be higher or
  50. X+     lower).  I assume that a pixel is square, therefore this number
  51. X+     represents drawing resolution in both direction.  I've experimented
  52. X+     with fig automatically changing this number according to the resolution
  53. X+     of the monitor it is running on (The screen resolution, width and height
  54. X+     in pixels, not pixel/inch, can be done by doing a ioctl on the /dev/fb).
  55. X+     I've found that for monitors with higher resolution but same size
  56. X+     (19" diagonal), I preferred using the pixels for other things than
  57. X+     having fig occupying most of the screen.  Thus I opted for a fixed
  58. X+     pixel-per-inch number which make fig window smaller on higher resolution
  59. X+     monitor (than the standard sun monitor).  This however may change in
  60. X+     the future version.
  61. X+ 
  62. X+ (3) The rest of the file contains various objects.  An object can be one
  63. X+     of six classes (or types).
  64. X+ 
  65. X+       i)    Ellipse which is a generalization of circle.
  66. X+      ii)    Polyline which includes polygon and box.
  67. X+     iii)    Spline which includes closed/open control/interpolated spline.
  68. X+      iv)    Text.
  69. X+       v)    Arc.
  70. X+      vi)    Compound object which is composed of one or more objects.
  71. X+ 
  72. X+     In the following elaboration on object formats, every value of fig
  73. X+     output are separated by blank characters or new line ('\n').  The
  74. X+     value of the not-used parameters will be -1.
  75. X+ 
  76. X+     A number of values are described as unused or not applicable to some
  77. X+     object even though they are defined for those objects.  These value
  78. X+     will (hopefully) be used in the future version of fig.  The intention
  79. X+     of their uses are the following.
  80. X+ 
  81. X+     Value            Usage
  82. X+     -----            -----
  83. X+     area_fill    The gray color for filling object internals.
  84. X+             Non-TFX:(gray color; 0=no fill,1=white,21=black)
  85. X+             TFX:    (gray color; 0=no fill,1=black, 5=white)
  86. X+ 
  87. X+     pen        This will be a structure defining the shape of
  88. X+             pen used in drawing objects.  It also includes
  89. X+             the the stipple pattern for line filling.
  90. X+             The default pen is a circular pen with black
  91. X+             filling.
  92. X+ 
  93. X+     thickness    Every pen has the thickness of one.
  94. X+             Thickness scales the size of a pen. 
  95. X+ 
  96. X+     depth        This value adds a half dimension to fig.
  97. X+             It is useful when we have overlapping filled
  98. X+             objects and we want one to obliterate another.
  99. X+             An object can have only one depth (including
  100. X+             compound object).  An object that is in less
  101. X+             depth can obscure the one with greater depth
  102. X+             if they overlap.
  103. X+     
  104. X+     style        Three line styles are defined.
  105. X+ 
  106. X+                 0 : SOLID_LINE
  107. X+                 1 : DASH_LINE
  108. X+                 2 : DOTTED_LINE
  109. X+ 
  110. X+     style_val    For dash style, it is the length of a dash.
  111. X+             For dotted line it indicates the approximated
  112. X+             gap of consecutive dots. 
  113. X+     
  114. X+     radius        For rounded-corner boxes, this is the radius of
  115. X+             the corners.
  116. X+ 
  117. X+     (3.1) ELLIPSE
  118. X+ 
  119. X+     First line :
  120. X+     type    name            (brief description)
  121. X+     ----    ----            -------------------
  122. X+     int    object_code        (always 1)
  123. X+     int    sub_type        (1 : ellipse defined by radiuses
  124. X+                      2 : ellipse defined by diameters
  125. X+                      3 : circle defined by radius
  126. X+                      4 : circle defined by diameter)
  127. X+     int    style            (See the end of this section)
  128. X+     int    thickness        (pixels, not used)
  129. X+     int    color            (not used)
  130. X+     int    depth            (not used)
  131. X+     int    pen            (not used)
  132. X+     int    area_fill        (gray color)
  133. X+     float    style_val        (pixels, not used)
  134. X+     int    direction        (always 1)
  135. X+     float    angle            (radian, the angle of the x-axis)
  136. X+     int    center_x, center_y    (pixels)
  137. X+     int    radius_x, radius_y    (pixels)
  138. X+     int    start_x, start_y    (pixels; the 1st point entered)
  139. X+     int    end_x, end_y        (pixels; the last point entered)
  140. X+ 
  141. X+     (3.2) POLYLINE
  142. X+ 
  143. X+     First line :
  144. X+     type    name            (brief description)
  145. X+     ----    ----            -------------------
  146. X+     int    object_code        (always 2)
  147. X+     int    sub_type        (1 : polyline, 2 : box, 
  148. X+                      3 : polygon, 4 : rounded-corner box)
  149. X+     int    style            (See the end of this section)
  150. X+     int    thickness        (pixels, not used)
  151. X+     int    color            (not used)
  152. X+     int    depth            (not used)
  153. X+     int    pen            (not used)
  154. X+     int    area_fill    *    (gray color)
  155. X+     float    style_val        (pixels)
  156. X+     int    radius        **    (pixels, radius of rounded-corner boxes)
  157. X+     int    forward_arrow        (0: off, 1: on)
  158. X+     int    backward_arrow        (0: off, 1: on)
  159. X+ 
  160. X+ *  Fill only available for box, polygon and rounded-corner box, not polyline.
  161. X+ ** This component exists only in rounded-corner box object.
  162. X+ 
  163. X+     Forward arrow line : same as ARC object
  164. X+ 
  165. X+     Backward arrow line : same as ARC object
  166. X+ 
  167. X+     Points line :
  168. X+     type    name            (brief description)
  169. X+     ----    ----            -------------------
  170. X+     int    x1, y1            (pixels)
  171. X+     int    x2, y2            (pixels)
  172. X+       .
  173. X+       .
  174. X+     int    xn, yn            (this will be the same as the 1st
  175. X+                     point for polygon and box)
  176. X+     int    x, y            (always 9999, 9999; marks the end of
  177. X+                     point for polygon and box)
  178. X+ 
  179. X+     (3.3) SPLINE
  180. X+ 
  181. X+     First line :
  182. X+     type    name            (brief description)
  183. X+     ----    ----            -------------------
  184. X+     int    object_code        (always 3)
  185. X+     int    sub_type        (0 : open spline
  186. X+                      1 : closed spline
  187. X+                      2 : open interpolated spline
  188. X+                      3 : closed interpolated spline)
  189. X+     int    style            (See the end of this section)
  190. X+     int    thickness        (pixels, not used)
  191. X+     int    color            (not used)
  192. X+     int    depth            (not used)
  193. X+     int    pen            (not used)
  194. X+     int    area_fill        (gray color)
  195. X+     float    style_val        (pixels, not used)
  196. X+     int    forward_arrow        (0: off, 1: on)
  197. X+     int    backward_arrow        (0: off, 1: on)
  198. X+ 
  199. X+     Forward arrow line : same as ARC object
  200. X+ 
  201. X+     Backward arrow line : same as ARC object
  202. X+ 
  203. X+     Points line : same as POLYLINE object
  204. X+ 
  205. X+     Control points line (absent if sub_type is 1 or 2) :
  206. X+     Control points of interpolated spline.  There are two control
  207. X+     points for each knots.  A section i, of the spline is drawn
  208. X+     using Bezier cubic with the following four points:
  209. X+         (x ,y ), (rx ,ry ), (lx      , ly   ), (x   , y   ).
  210. X+           i  i        i    i      i+1    i+1     i+1   i+1
  211. X+     For closed interpolated spline the last pair of control points,
  212. X+     (lxn,lyn) and (rxn,ryn) (which can be ignored), are the same as
  213. X+     (lx1,ly1) and (rx1,ry1) respectively.
  214. X+ 
  215. X+     type    name            (brief description)
  216. X+     ----    ----            -------------------
  217. X+     float    lx1, ly1        (pixels)
  218. X+     float    rx1, ry1        (pixels)
  219. X+     float    lx2, ly2        (pixels)
  220. X+     float    rx2, ry2        (pixels)
  221. X+       .
  222. X+       .
  223. X+     float    lxn, lyn        (pixels)
  224. X+     float    rxn, ryn        (pixels)
  225. X+ 
  226. X+     (3.4) TEXT
  227. X+     type    name            (brief description)
  228. X+     ----    ----            -------------------
  229. X+     int    object             (always 4)
  230. X+     int    sub_type        (0 : Left justified
  231. X+                      1 : Center justified
  232. X+                      2 : Right justified)
  233. X+     int    font             (font number 0-...)
  234. X+     int    font_size         (point size)
  235. X+     int    pen            (not used)
  236. X+     int    color            (not used)
  237. X+     int    depth            (not used)
  238. X+     int    angle            (radian, not used, the angle of the
  239. X+                     the base line of the string)
  240. X+     int    font_style        (not used)
  241. X+     int    height            (pixels)
  242. X+     int    length            (pixels)
  243. X+     int    x, y            (pixels, coordinate of the origin
  244. X+                      of the string.  If sub_type = 0, it is
  245. X+                      the lower left corner of the string.
  246. X+                      If sub_type = 1, it is the lower
  247. X+                      center.  Otherwise it is the lower
  248. X+                      right corner of the string.)
  249. X+     char    string[]        (ascii characters; starts after a blank
  250. X+                     character following the last number and
  251. X+                     ends before the character '\1'.  This
  252. X+                     character is not part of the string.
  253. X+                     Note that the string may contain '\n'.)
  254. X+     (3.5) ARC
  255. X+ 
  256. X+     First line :
  257. X+     type    name            (brief description)
  258. X+     ----    ----            -------------------
  259. X+     int    object_code        (always 5)
  260. X+     int    sub_type        (always    1)
  261. X+     int    style            (See the end of this section)
  262. X+     int    line_thickness        (pixels, not used)
  263. X+     int    color            (not used)
  264. X+     int    depth            (not used)
  265. X+     int    pen            (not used)
  266. X+     int    area_fill        (gray color)
  267. X+     float    style_val        (pixels, not used)
  268. X+     int    direction        (0 : clockwise, 1 : counterclockwise)
  269. X+     int    forward_arrow        (0: no forward arrow, 1: on)
  270. X+     int    backward_arrow        (0: no forward arrow, 1: on)
  271. X+     float    center_x, center_y    (center of the arc)
  272. X+     int    x1, y1            (pixels, the 1st point the user entered)
  273. X+     int    x2, y2            (pixels, the 2nd point)
  274. X+     int    x3, y3            (pixels, the last point)
  275. X+ 
  276. X+     Forward arrow line (Optional; absent if forward_arrow is 0) :
  277. X+     type    name            (brief description)
  278. X+     ----    ----            -------------------
  279. X+     int    arrow_type        (not used)
  280. X+     int    arrow_style        (not used)
  281. X+     float    arrow_thickness        (not used)
  282. X+     float    arrow_width        (pixels)
  283. X+     float    arrow_height        (pixels)
  284. X+ 
  285. X+     Backward arrow line (Optional; absent if backward_arrow is 0) :
  286. X+     type    name            (brief description)
  287. X+     ----    ----            -------------------
  288. X+     int    arrow_type        (not used)
  289. X+     int    arrow_style        (not used)
  290. X+     float    arrow_thickness        (not used)
  291. X+     float    arrow_width        (pixels)
  292. X+     float    arrow_height        (pixels)
  293. X+ 
  294. X+     (3.6) COMPOUND
  295. X+ 
  296. X+     A line with object code 6 signifies the start of a compound.
  297. X+     There are four more numbers on this line which indicate the
  298. X+     upper right corner and the lower left corner of the bounding
  299. X+     box of this compound.  A line with object code -6 signifies
  300. X+     the end of the compound.  Compound may be nested.
  301. X+ 
  302. X+     First line :
  303. X+     type    name            (brief description)
  304. X+     ----    ----            -------------------
  305. X+     int    object_code        (always 6)
  306. X+     int    upperright_corner_x    (pixels)
  307. X+     int    upperright_corner_y    (pixels)
  308. X+     int    lowerleft_corner_x    (pixels)
  309. X+     int    lowerleft_corner_y    (pixels)
  310. X+ 
  311. X+     Subsequent lines :
  312. X+     objects
  313. X+     .
  314. X+     .
  315. X+ 
  316. X+     Last line :
  317. X+     -6
  318. X+ 
  319. X+ 
  320. END_OF_FILE
  321. if test 10098 -ne `wc -c <'FORMAT2.0.diff'`; then
  322.     echo shar: \"'FORMAT2.0.diff'\" unpacked with wrong size!
  323. fi
  324. # end of 'FORMAT2.0.diff'
  325. fi
  326. if test -f 'line.c.diff' -a "${1}" != "-c" ; then 
  327.   echo shar: Will not clobber existing file \"'line.c.diff'\"
  328. else
  329. echo shar: Extracting \"'line.c.diff'\" \(9233 characters\)
  330. sed "s/^X//" >'line.c.diff' <<'END_OF_FILE'
  331. X*** line.c.old    Tue Apr 24 11:48:19 1990
  332. X--- line.c    Mon Apr 16 11:21:22 1990
  333. X***************
  334. X*** 104,110 ****
  335. X  
  336. X  draw_elasticline()
  337. X  {
  338. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, 
  339. X          INV_PAINT, 1, SOLID_LINE, 0.0);
  340. X      }
  341. X  
  342. X--- 104,110 ----
  343. X  
  344. X  draw_elasticline()
  345. X  {
  346. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, 
  347. X          INV_PAINT, 1, SOLID_LINE, 0.0);
  348. X      }
  349. X  
  350. X***************
  351. X*** 123,129 ****
  352. X      CURSOR c;
  353. X  
  354. X      latex_endpoint(fix_x, fix_y, cur_x, cur_y, &x, &y, latexarrow_mode, (magnet_mode)? 5: 1);
  355. X!     pw_vector(canvas_pixwin, fix_x, fix_y, x, y, INV_PAINT,1,SOLID_LINE, 0.0);
  356. X      c = (x == cur_x  &&  y == cur_y)? &null_cursor: &crosshair_cursor;
  357. X      if (c != cur_cursor) {
  358. X          set_temp_cursor(c);
  359. X--- 123,129 ----
  360. X      CURSOR c;
  361. X  
  362. X      latex_endpoint(fix_x, fix_y, cur_x, cur_y, &x, &y, latexarrow_mode, (magnet_mode)? 5: 1);
  363. X!     pw_vector(canvas_win, fix_x, fix_y, x, y, INV_PAINT,1,SOLID_LINE, 0.0);
  364. X      c = (x == cur_x  &&  y == cur_y)? &null_cursor: &crosshair_cursor;
  365. X      if (c != cur_cursor) {
  366. X          set_temp_cursor(c);
  367. X***************
  368. X*** 144,153 ****
  369. X  int    x, y;
  370. X  {
  371. X      if (x == cur_x && y == cur_y) return;
  372. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  373. X      cur_x = x;
  374. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  375. X!     win_setmouseposition(canvas_swfd, cur_x, cur_y);
  376. X      }
  377. X  
  378. X  angle90_elasticline(x, y)
  379. X--- 144,153 ----
  380. X  int    x, y;
  381. X  {
  382. X      if (x == cur_x && y == cur_y) return;
  383. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  384. X      cur_x = x;
  385. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  386. X!     win_setmouseposition(canvas_win, cur_x, cur_y);
  387. X      }
  388. X  
  389. X  angle90_elasticline(x, y)
  390. X***************
  391. X*** 154,163 ****
  392. X  int    x, y;
  393. X  {
  394. X      if (x == cur_x && y == cur_y) return;
  395. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  396. X      cur_y = y;
  397. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  398. X!     win_setmouseposition(canvas_swfd, cur_x, cur_y);
  399. X      }
  400. X  
  401. X  angle45_elasticline(x, y)
  402. X--- 154,163 ----
  403. X  int    x, y;
  404. X  {
  405. X      if (x == cur_x && y == cur_y) return;
  406. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  407. X      cur_y = y;
  408. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  409. X!     win_setmouseposition(canvas_win, cur_x, cur_y);
  410. X      }
  411. X  
  412. X  angle45_elasticline(x, y)
  413. X***************
  414. X*** 164,170 ****
  415. X  int    x, y;
  416. X  {
  417. X      if (x == cur_x && y == cur_y) return;
  418. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  419. X      if (abs(x - cur_x) < abs(y - cur_y)) {
  420. X          cur_x += cur_y - y;
  421. X          cur_y = y;
  422. X--- 164,170 ----
  423. X  int    x, y;
  424. X  {
  425. X      if (x == cur_x && y == cur_y) return;
  426. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  427. X      if (abs(x - cur_x) < abs(y - cur_y)) {
  428. X          cur_x += cur_y - y;
  429. X          cur_y = y;
  430. X***************
  431. X*** 173,180 ****
  432. X          cur_y -= x - cur_x;
  433. X          cur_x = x;
  434. X          }
  435. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  436. X!     win_setmouseposition(canvas_swfd, cur_x, cur_y);
  437. X      }
  438. X  
  439. X  angle135_elasticline(x, y)
  440. X--- 173,180 ----
  441. X          cur_y -= x - cur_x;
  442. X          cur_x = x;
  443. X          }
  444. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  445. X!     win_setmouseposition(canvas_win, cur_x, cur_y);
  446. X      }
  447. X  
  448. X  angle135_elasticline(x, y)
  449. X***************
  450. X*** 181,187 ****
  451. X  int    x, y;
  452. X  {
  453. X      if (x == cur_x && y == cur_y) return;
  454. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  455. X      if (abs(x - cur_x) < abs(y - cur_y)) {
  456. X          cur_x += y - cur_y;
  457. X          cur_y = y;
  458. X--- 181,187 ----
  459. X  int    x, y;
  460. X  {
  461. X      if (x == cur_x && y == cur_y) return;
  462. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  463. X      if (abs(x - cur_x) < abs(y - cur_y)) {
  464. X          cur_x += y - cur_y;
  465. X          cur_y = y;
  466. X***************
  467. X*** 190,197 ****
  468. X          cur_y += x - cur_x;
  469. X          cur_x = x;
  470. X          }
  471. X!     pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  472. X!     win_setmouseposition(canvas_swfd, cur_x, cur_y);
  473. X      }
  474. X  
  475. X  get_direction(x, y)
  476. X--- 190,197 ----
  477. X          cur_y += x - cur_x;
  478. X          cur_x = x;
  479. X          }
  480. X!     pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, INV_PAINT,1,SOLID_LINE, 0.0);
  481. X!     win_setmouseposition(canvas_win, cur_x, cur_y);
  482. X      }
  483. X  
  484. X  get_direction(x, y)
  485. X***************
  486. X*** 245,251 ****
  487. X          set_temp_cursor(&null_cursor);
  488. X          cur_cursor = &null_cursor;
  489. X          }
  490. X!     win_setmouseposition(canvas_swfd, cur_x, cur_y);
  491. X      get_intermediatepoint(cur_x, cur_y);
  492. X      }
  493. X  
  494. X--- 245,251 ----
  495. X          set_temp_cursor(&null_cursor);
  496. X          cur_cursor = &null_cursor;
  497. X          }
  498. X!     win_setmouseposition(canvas_win, cur_x, cur_y);
  499. X      get_intermediatepoint(cur_x, cur_y);
  500. X      }
  501. X  
  502. X***************
  503. X*** 273,279 ****
  504. X          set_temp_cursor(&null_cursor);
  505. X          cur_cursor = &null_cursor;
  506. X          }
  507. X!         win_setmouseposition(canvas_swfd, cur_x, cur_y);
  508. X          }
  509. X      create_lineobject(cur_x, cur_y);
  510. X      }
  511. X--- 273,279 ----
  512. X          set_temp_cursor(&null_cursor);
  513. X          cur_cursor = &null_cursor;
  514. X          }
  515. X!         win_setmouseposition(canvas_win, cur_x, cur_y);
  516. X          }
  517. X      create_lineobject(cur_x, cur_y);
  518. X      }
  519. X***************
  520. X*** 320,326 ****
  521. X      line->color = cur_color;
  522. X      line->depth = 0;
  523. X      line->area_fill = 0;
  524. X!     line->pen = NULL;
  525. X      line->points = first_point;
  526. X      line->next = NULL;
  527. X      line->for_arrow = NULL;
  528. X--- 320,326 ----
  529. X      line->color = cur_color;
  530. X      line->depth = 0;
  531. X      line->area_fill = 0;
  532. X!     line->pen = 0;
  533. X      line->points = first_point;
  534. X      line->next = NULL;
  535. X      line->for_arrow = NULL;
  536. X***************
  537. X*** 337,343 ****
  538. X          }
  539. X          }
  540. X      else if (dot) {            /* single point */
  541. X!         pw_vector(canvas_pixwin, fix_x, fix_y, cur_x, cur_y, PAINT, 2, SOLID_LINE, 0.0);
  542. X          line->style = SOLID_LINE;
  543. X          }
  544. X      else if (num_point > 1) {        /* polyline; draw any arrows */
  545. X--- 337,343 ----
  546. X          }
  547. X          }
  548. X      else if (dot) {            /* single point */
  549. X!         pw_vector(canvas_win, fix_x, fix_y, cur_x, cur_y, PAINT, 2, SOLID_LINE, 0.0);
  550. X          line->style = SOLID_LINE;
  551. X          }
  552. X      else if (num_point > 1) {        /* polyline; draw any arrows */
  553. X***************
  554. X*** 399,405 ****
  555. X      XPoint *points;
  556. X      GC gc;
  557. X  
  558. X!     if (line->area_fill <= 0)
  559. X          return;
  560. X  
  561. X      if (op == PAINT)        /* fill */
  562. X--- 399,405 ----
  563. X      XPoint *points;
  564. X      GC gc;
  565. X  
  566. X!     if (line->area_fill <= 0 || line->type == T_POLYLINE)
  567. X          return;
  568. X  
  569. X      if (op == PAINT)        /* fill */
  570. X***************
  571. X*** 426,432 ****
  572. X          points[i].x = pnt->x;
  573. X          points[i].y = pnt->y;
  574. X          }
  575. X!     XFillPolygon(tool_d,canvas_pixwin,gc,points, npts,
  576. X              Complex, CoordModeOrigin);
  577. X      free(points);
  578. X      }
  579. X--- 426,432 ----
  580. X          points[i].x = pnt->x;
  581. X          points[i].y = pnt->y;
  582. X          }
  583. X!     XFillPolygon(tool_d,canvas_win,gc,points, npts,
  584. X              Complex, CoordModeOrigin);
  585. X      free(points);
  586. X      }
  587. X***************
  588. X*** 440,446 ****
  589. X      int    radius,diam;
  590. X  
  591. X      point = line->points;
  592. X!     radius = line->pen;
  593. X  
  594. X      xmin = xmax = point->x;
  595. X      ymin = ymax = point->y;
  596. X--- 440,446 ----
  597. X      int    radius,diam;
  598. X  
  599. X      point = line->points;
  600. X!     radius = line->radius;
  601. X  
  602. X      xmin = xmax = point->x;
  603. X      ymin = ymax = point->y;
  604. X***************
  605. X*** 459,485 ****
  606. X      
  607. X      diam = 2*radius;
  608. X      /* upper left */
  609. X!     XFillArc(tool_d, canvas_pixwin, gc, xmin, ymin,
  610. X              diam, diam, 90*64, 90*64);
  611. X      /* lower left */
  612. X!     XFillArc(tool_d, canvas_pixwin, gc, xmin, ymax-diam,
  613. X              diam, diam, 180*64, 90*64);
  614. X      /* lower right */
  615. X!     XFillArc(tool_d, canvas_pixwin, gc, xmax-diam, ymax-diam,
  616. X              diam, diam, 270*64, 90*64);
  617. X      /* upper right */
  618. X!     XFillArc(tool_d, canvas_pixwin, gc, xmax-diam, ymin,
  619. X              diam, diam, 0*64, 90*64);
  620. X      /* fill strip on left side between upper and lower arcs */
  621. X      if (ymax-ymin-diam > 0)
  622. X!         XFillRectangle(tool_d, canvas_pixwin, gc, xmin, ymin+radius,
  623. X              radius, ymax-ymin-diam);
  624. X      /* fill middle section */
  625. X      if (xmax-xmin-diam > 0)
  626. X!         XFillRectangle(tool_d, canvas_pixwin, gc, xmin+radius, ymin,
  627. X              xmax-xmin-diam, ymax-ymin);
  628. X      /* fill strip on right side between upper and lower arcs */
  629. X      if (ymax-ymin-diam > 0)
  630. X!         XFillRectangle(tool_d, canvas_pixwin, gc, xmax-radius, ymin+radius,
  631. X              radius, ymax-ymin-diam);
  632. X      }
  633. X--- 459,485 ----
  634. X      
  635. X      diam = 2*radius;
  636. X      /* upper left */
  637. X!     XFillArc(tool_d, canvas_win, gc, xmin, ymin,
  638. X              diam, diam, 90*64, 90*64);
  639. X      /* lower left */
  640. X!     XFillArc(tool_d, canvas_win, gc, xmin, ymax-diam,
  641. X              diam, diam, 180*64, 90*64);
  642. X      /* lower right */
  643. X!     XFillArc(tool_d, canvas_win, gc, xmax-diam, ymax-diam,
  644. X              diam, diam, 270*64, 90*64);
  645. X      /* upper right */
  646. X!     XFillArc(tool_d, canvas_win, gc, xmax-diam, ymin,
  647. X              diam, diam, 0*64, 90*64);
  648. X      /* fill strip on left side between upper and lower arcs */
  649. X      if (ymax-ymin-diam > 0)
  650. X!         XFillRectangle(tool_d, canvas_win, gc, xmin, ymin+radius,
  651. X              radius, ymax-ymin-diam);
  652. X      /* fill middle section */
  653. X      if (xmax-xmin-diam > 0)
  654. X!         XFillRectangle(tool_d, canvas_win, gc, xmin+radius, ymin,
  655. X              xmax-xmin-diam, ymax-ymin);
  656. X      /* fill strip on right side between upper and lower arcs */
  657. X      if (ymax-ymin-diam > 0)
  658. X!         XFillRectangle(tool_d, canvas_win, gc, xmax-radius, ymin+radius,
  659. X              radius, ymax-ymin-diam);
  660. X      }
  661. END_OF_FILE
  662. if test 9233 -ne `wc -c <'line.c.diff'`; then
  663.     echo shar: \"'line.c.diff'\" unpacked with wrong size!
  664. fi
  665. # end of 'line.c.diff'
  666. fi
  667. if test -f 'panel.c.diff' -a "${1}" != "-c" ; then 
  668.   echo shar: Will not clobber existing file \"'panel.c.diff'\"
  669. else
  670. echo shar: Extracting \"'panel.c.diff'\" \(11356 characters\)
  671. sed "s/^X//" >'panel.c.diff' <<'END_OF_FILE'
  672. X*** panel.c.old    Tue Apr 24 11:48:24 1990
  673. X--- panel.c    Fri Apr 20 14:36:03 1990
  674. X***************
  675. X*** 38,43 ****
  676. X--- 38,46 ----
  677. X  extern    char    *printer_list[];
  678. X  extern    TOOL    fontmenu;        /* popup menu for printer fonts */
  679. X  extern    appresStruct    appres;
  680. X+ extern    int    font_button;        /* "current" font */
  681. X+ extern    int    *font_sel;        /* pointer to store font selected from popup */
  682. X+ extern    TOOL    image_widget;        /* which widget to store image of font in */
  683. X  
  684. X  /**************     local variables and routines   **************/
  685. X  
  686. X***************
  687. X*** 112,142 ****
  688. X      { 0, 0, 0, 0, &line_ic, F_POLYLINE, set_command, null_proc, S_ON, },
  689. X      { 0, 0, 0, 0, &polygon_ic, F_POLYGON, set_command, null_proc, S_ON, },
  690. X      { 0, 0, 0, 0, &box_ic, F_BOX, set_command, null_proc, S_ON, },
  691. X- #ifndef TFX
  692. X-     /* no rounded-corner boxes with TFX */
  693. X      { 0, 0, 0, 0, &arc_box_ic, F_ARC_BOX, set_command, null_proc, S_ON, },
  694. X- #endif
  695. X      { 0, 0, 0, 0, &text_ic, F_TEXT, set_command, null_proc, S_ON, },
  696. X      { 0, 0, 0, 0, &arc_ic, F_CIRCULAR_ARC, set_command, null_proc, S_ON, },
  697. X      { 0, 0, 0, 0, &turn_ic, F_TURN, set_command, null_proc, S_ON, },
  698. X- #ifdef TFX    /* put arrow before glue */
  699. X-     { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  700. X- #endif
  701. X      { 0, 0, 0, 0, &glue_ic, F_GLUE, set_command, null_proc, S_ON, },
  702. X      { 0, 0, 0, 0, &break_ic, F_BREAK, set_command, null_proc, S_ON, },
  703. X      { 0, 0, 0, 0, &scale_ic, F_SCALE, set_command, null_proc, S_ON, },
  704. X- #ifndef TFX    /* put arrow after glue */
  705. X      { 0, 0, 0, 0, &autoarrow_ic, F_AUTOARROW, set_command, null_proc, S_ON, },
  706. X- #endif
  707. X      { 0, 0, 0, 0, &addpt_ic, F_ADD_POINT, set_command, null_proc, S_ON, },
  708. X      { 0, 0, 0, 0, &deletept_ic, F_DELETE_POINT, set_command, null_proc, S_ON, },
  709. X- #ifdef TFX    /* put movept before move */
  710. X-     { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  711. X- #endif
  712. X      { 0, 0, 0, 0, &move_ic, F_MOVE, set_command, null_proc, S_ON, },
  713. X- #ifndef TFX    /* put movept after move */
  714. X      { 0, 0, 0, 0, &movept_ic, F_MOVE_POINT, set_command, null_proc, S_ON, },
  715. X- #endif
  716. X      { 0, 0, 0, 0, ©_ic, F_COPY, set_command, null_proc, S_ON, },
  717. X      { 0, 0, 0, 0, &remove_ic, F_REMOVE, set_command, null_proc, S_ON, },
  718. X      { 0, 0, 0, 0, &flip_x_ic, F_FLIP_XAXIS, set_command, null_proc, S_ON, },
  719. X--- 115,132 ----
  720. X***************
  721. X*** 143,174 ****
  722. X      { 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
  723. X      { 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
  724. X      { 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
  725. X! #ifndef TFX
  726. X!     /* place holders to align some button groups */
  727. X!     { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, },
  728. X! #endif
  729. X!     { 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
  730. X!     { 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
  731. X      { 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
  732. X      { 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
  733. X      { 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
  734. X      { 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
  735. X! #ifdef TFX
  736. X!     { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  737. X!     { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  738. X! #endif
  739. X!     { 1,  3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
  740. X!     { 0,  3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
  741. X!     { 0,  3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
  742. X!     { 0,  0, 0, 0, &change_style_ic, F_CHANGE_STYLE, set_command, null_proc, S_ON, },
  743. X!     { 0, -1, 0, 0, &backarrow_ic, F_AUTOB_ARROW, mode_on, mode_off, S_TOG, },
  744. X!     { 0, -1, 0, 0, &forarrow_ic, F_AUTOF_ARROW, mode_on, mode_off, S_TOG, },
  745. X!     { 0,  0, 0, 0, &change_thick_ic, F_CHANGE_THICK, set_command, null_proc, S_ON, },
  746. X!     { 1, -1, 0, 0, &magnet_ic, F_MAGNET, mode_on, mode_off, S_TOG, },
  747. X!     { 0, -1, 0, 0, &fill_ic, F_FILL, mode_on, mode_off, S_TOG, },
  748. X!     { 0, -1, 0, 0, &incdec_thick_ic, F_INCDECTHICK, dec_thick, null_proc, S_MOMENT,},
  749. X!     { 0, -1, 0, 0, &incdec_radius_ic, F_INCDECRADIUS, dec_radius, null_proc, S_MOMENT,},
  750. X!     { 0, -1, 0, 0, &fill_color_ic, F_FILLCOLOR, lighten_fill, null_proc, S_MOMENT,},
  751. X  
  752. X      /* place holders to keep a multiple of 3 buttons */
  753. X      /* { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, }, */
  754. X--- 133,158 ----
  755. X      { 0, 0, 0, 0, &flip_y_ic, F_FLIP_YAXIS, set_command, null_proc, S_ON, },
  756. X      { 0, 0, 0, 0, &rot90_ic, F_ROTATE90, set_command, null_proc, S_ON, },
  757. X      { 0, 0, 0, 0, &rot270_ic, F_ROTATE270, set_command, null_proc, S_ON, },
  758. X!         /* now change item Jon N. Tombs */
  759. X!         { 0, 0, 0, 0, &change_ic, F_CHANGE, set_command, null_proc, S_ON, },
  760. X      { 1, 2, 0, 0, &unconstraint_ic, F_UNCONSTRAINT, set_geometry, null_proc, S_ON, },
  761. X+     { 0, 2, 0, 0, &latexline_ic, F_LATEX_LINE, set_geometry, null_proc, S_ON, },
  762. X+     { 0, 2, 0, 0, &latexarrow_ic, F_LATEX_ARROW, set_geometry, null_proc, S_ON, },
  763. X      { 0, 2, 0, 0, &mounthattan_ic, F_MOUNTHATTAN, set_geometry, null_proc, S_ON, },
  764. X      { 0, 2, 0, 0, &manhattan_ic, F_MANHATTAN, set_geometry, null_proc, S_ON, },
  765. X      { 0, 2, 0, 0, &mountain_ic, F_MOUNTAIN, set_geometry, null_proc, S_ON, },
  766. X!     { 1, 3, 0, 0, &solidline_ic, F_SET_SOLID_LINE, set_style, null_proc, S_ON, },
  767. X!     { 0, 3, 0, 0, &dashline_ic, F_SET_DASH_LINE, set_style, null_proc, S_ON, },
  768. X!     { 0, 3, 0, 0, &dottedline_ic, F_SET_DOTTED_LINE, set_style, null_proc, S_ON, },
  769. X!     { 0, 1, 0, 0, &grid1_ic, F_GRID1, set_grid, set_grid, S_TOG, },
  770. X!     { 0,-1, 0, 0, &backarrow_ic, F_AUTOB_ARROW, mode_on, mode_off, S_TOG, },
  771. X!     { 0,-1, 0, 0, &forarrow_ic, F_AUTOF_ARROW, mode_on, mode_off, S_TOG, },
  772. X!     { 0, 1, 0, 0, &grid2_ic, F_GRID2, set_grid, set_grid, S_TOG, },
  773. X!     { 1,-1, 0, 0, &magnet_ic, F_MAGNET, mode_on, mode_off, S_TOG, },
  774. X!     { 0,-1, 0, 0, &fill_ic, F_FILL, mode_on, mode_off, S_TOG, },
  775. X!     { 0,-1, 0, 0, &incdec_thick_ic, F_INCDECTHICK, dec_thick, null_proc, S_MOMENT,},
  776. X!     { 0,-1, 0, 0, &incdec_radius_ic, F_INCDECRADIUS, dec_radius, null_proc, S_MOMENT,},
  777. X!     { 0,-1, 0, 0, &fill_color_ic, F_FILLCOLOR, lighten_fill, null_proc, S_MOMENT,},
  778. X  
  779. X      /* place holders to keep a multiple of 3 buttons */
  780. X      /* { 0, -1, 0, 0, &blank_ic, F_NOP, null_proc, null_proc, S_MOMENT, }, */
  781. X***************
  782. X*** 193,199 ****
  783. X      { 0, -1, 0, 0, &font_ic, F_FONT, popup_fonts, null_proc, S_MOMENT, },
  784. X      { 0, -1, 0, 0, &size_ic, F_SIZE, dec_size_button, null_proc, S_MOMENT, },
  785. X      { 0, -1, 0, 0, &textL_ic, F_JUST, text_just_button, null_proc, S_MOMENT, },
  786. X-     { 0,  0, 0, 0, &change_text_ic, F_CHANGE_TEXT, set_command, null_proc, S_ON, },
  787. X      { 0, -1, 0, 0, &land_ic, F_LAND, land_button, null_proc, S_MOMENT, },
  788. X      { 0, -1, 0, 0, &undo_ic, F_UNDO, undo_button, null_proc, S_MOMENT, },
  789. X      { 0, -1, 0, 0, &redisp_ic, F_REDISPLAY, redisp_button, null_proc, S_MOMENT, },
  790. X--- 177,182 ----
  791. X***************
  792. X*** 395,401 ****
  793. X      register Screen        *s = tool_s;
  794. X      register Pixmap        p;
  795. X      Arg            tmp_arg[3];
  796. X!     long            bg, fg;
  797. X      
  798. X      button_gc = XCreateGC(d, XtWindow(panel_sw), (unsigned long)0, NULL);
  799. X      XtSetArg(tmp_arg[0], XtNbackground, &bg);
  800. X--- 378,384 ----
  801. X      register Screen        *s = tool_s;
  802. X      register Pixmap        p;
  803. X      Arg            tmp_arg[3];
  804. X!     unsigned long        bg, fg;
  805. X      
  806. X      button_gc = XCreateGC(d, XtWindow(panel_sw), (unsigned long)0, NULL);
  807. X      XtSetArg(tmp_arg[0], XtNbackground, &bg);
  808. X***************
  809. X*** 496,505 ****
  810. X      }
  811. X  
  812. X      init_switch();
  813. X!     panel_pixwin = panel_swfd = XtWindow(panel_sw);
  814. X!     XDefineCursor(d, panel_swfd, (Cursor)arrow_cursor.bitmap);
  815. X!     panel2_pixwin = panel2_swfd = XtWindow(panel2_sw);
  816. X!     XDefineCursor(d, panel2_swfd, (Cursor)arrow_cursor.bitmap);
  817. X  
  818. X  }
  819. X  
  820. X--- 479,486 ----
  821. X      }
  822. X  
  823. X      init_switch();
  824. X!     XDefineCursor(d, XtWindow(panel_sw), (Cursor)arrow_cursor.bitmap);
  825. X!     XDefineCursor(d, XtWindow(panel2_sw), (Cursor)arrow_cursor.bitmap);
  826. X  
  827. X  }
  828. X  
  829. X***************
  830. X*** 827,851 ****
  831. X          erase_compoundbox();
  832. X          put_msg("ADD arrow head (left button); DELETE arrow head (middle button)");
  833. X          break;
  834. X!         case F_CHANGE_THICK:
  835. X!         change_thick_selected();
  836. X!         show_pointmarker();
  837. X!         erase_compoundbox();
  838. X!         put_msg("CHANGE LINE THICKNESS to current thickness of %d",
  839. X!             line_thickness);
  840. X!         break;
  841. X!         case F_CHANGE_STYLE:
  842. X!         change_style_selected();
  843. X!         show_pointmarker();
  844. X!         erase_compoundbox();
  845. X!         put_msg("CHANGE LINE STYLE to current style");
  846. X!         break;
  847. X!         case F_CHANGE_TEXT:
  848. X!         change_text_selected();
  849. X!         show_pointmarker();
  850. X!         erase_compoundbox();
  851. X!         put_msg("CHANGE TEXT to current font/type/size");
  852. X!         break;
  853. X          }
  854. X      cur_command = sw->value;
  855. X      }
  856. X--- 808,821 ----
  857. X          erase_compoundbox();
  858. X          put_msg("ADD arrow head (left button); DELETE arrow head (middle button)");
  859. X          break;
  860. X!         case F_CHANGE:
  861. X!                 change_item_selected();
  862. X!                 show_pointmarker();
  863. X!                 show_compoundbox();
  864. X!                 put_msg("CHANGE OBJECT");
  865. X!                 break;
  866. X! 
  867. X! 
  868. X          }
  869. X      cur_command = sw->value;
  870. X      }
  871. X***************
  872. X*** 936,943 ****
  873. X          break;
  874. X          case F_FILL :
  875. X          fill_mode = 1;
  876. X!         put_fmsg("FILL MODE (gray level = %.2f)",
  877. X!                 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  878. X          break;
  879. X          }
  880. X      }
  881. X--- 906,913 ----
  882. X          break;
  883. X          case F_FILL :
  884. X          fill_mode = 1;
  885. X!         put_fmsg("FILL MODE (gray level = %.2lf)",
  886. X!              (double)1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  887. X          break;
  888. X          }
  889. X      }
  890. X***************
  891. X*** 1085,1091 ****
  892. X      /* draw current radius into pixmap */
  893. X      curve(radius_pm, 0, cur_radius, cur_radius, 0, 0, 1, 1, 
  894. X          1, SWITCH_ICON_HEIGHT-2, foreground_color, 
  895. X!         1, SOLID_LINE, 0, 0.0);
  896. X  
  897. X      /* Fool the toolkit by changing the background pixmap to 0
  898. X         then giving it the modified one again.  Otherwise, it sees
  899. X--- 1055,1061 ----
  900. X      /* draw current radius into pixmap */
  901. X      curve(radius_pm, 0, cur_radius, cur_radius, 0, 0, 1, 1, 
  902. X          1, SWITCH_ICON_HEIGHT-2, foreground_color, 
  903. X!         1, SOLID_LINE, 0.0, 0);
  904. X  
  905. X      /* Fool the toolkit by changing the background pixmap to 0
  906. X         then giving it the modified one again.  Otherwise, it sees
  907. X***************
  908. X*** 1102,1107 ****
  909. X--- 1072,1078 ----
  910. X  
  911. X  static
  912. X  darken_fill(sw)
  913. X+ F_switch *sw;
  914. X      {
  915. X      if (cur_areafill < NUMFILLPATS)
  916. X          ++cur_areafill;
  917. X***************
  918. X*** 1110,1115 ****
  919. X--- 1081,1087 ----
  920. X  
  921. X  static
  922. X  lighten_fill(sw)
  923. X+ F_switch *sw;
  924. X      {
  925. X      if (cur_areafill > 1)
  926. X          --cur_areafill;
  927. X***************
  928. X*** 1121,1127 ****
  929. X      /* put fill pixmap in widget background */
  930. X      indicator_panel_args[5].value = ind_fill_pm[cur_areafill-1]; 
  931. X      XtSetValues(fill_panel, &indicator_panel_args[5], 1);
  932. X!     put_fmsg("FILL GRAY = %.2f", 1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  933. X      }
  934. X  
  935. X  /* save_n_exit */
  936. X--- 1093,1100 ----
  937. X      /* put fill pixmap in widget background */
  938. X      indicator_panel_args[5].value = ind_fill_pm[cur_areafill-1]; 
  939. X      XtSetValues(fill_panel, &indicator_panel_args[5], 1);
  940. X!     put_fmsg("FILL GRAY = %.2lf", 
  941. X!          (double)1.0-(cur_areafill-1.0)/(NUMFILLPATS-1.0));
  942. X      }
  943. X  
  944. X  /* save_n_exit */
  945. X***************
  946. X*** 1253,1258 ****
  947. X--- 1226,1233 ----
  948. X  popup_fonts(sw)
  949. X  F_switch *sw;
  950. X      {
  951. X+     font_sel = &font_button;    /* store selected font number in font_button */
  952. X+     image_widget = psfont;        /* and image in this widget */
  953. X      XtPopup(fontmenu,XtGrabNonexclusive);
  954. X      setup_fontmenu_cursor();    /* now define the cursor for the font menu */
  955. X      }
  956. END_OF_FILE
  957. if test 11356 -ne `wc -c <'panel.c.diff'`; then
  958.     echo shar: \"'panel.c.diff'\" unpacked with wrong size!
  959. fi
  960. # end of 'panel.c.diff'
  961. fi
  962. if test -f 'psbits.c.diff' -a "${1}" != "-c" ; then 
  963.   echo shar: Will not clobber existing file \"'psbits.c.diff'\"
  964. else
  965. echo shar: Extracting \"'psbits.c.diff'\" \(9464 characters\)
  966. sed "s/^X//" >'psbits.c.diff' <<'END_OF_FILE'
  967. X*** psbits.c.old    Tue Apr 24 11:48:31 1990
  968. X--- psbits.c    Wed Apr 11 09:52:31 1990
  969. X***************
  970. X*** 208,276 ****
  971. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  972. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  973. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
  974. X! static char AvantGarde_bits[] = {
  975. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  976. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  977. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  978. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  979. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  980. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  981. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  982. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  983. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  984. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  985. X!     0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,
  986. X!     0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  987. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  988. X!     0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x03,
  989. X!     0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  990. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  991. X!     0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x08,0x01,
  992. X!     0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  993. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  994. X!     0x00,0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x08,
  995. X!     0x01,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
  996. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  997. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x02,0x01,0xc1,0x27,0x3d,
  998. X!     0xbe,0x00,0x00,0x3e,0x69,0xf8,0x04,0x1f,0x00,0x00,0x00,0x00,
  999. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1000. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x02,0x01,0x31,0x38,
  1001. X!     0x43,0x88,0x00,0x80,0xc1,0x19,0x06,0xc7,0x60,0x00,0x00,0x00,
  1002. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1003. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x82,0x10,
  1004. X!     0x30,0x81,0x88,0x00,0x80,0x80,0x09,0x02,0x46,0x40,0x00,0x00,
  1005. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1006. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x82,
  1007. X!     0x08,0x20,0x81,0x88,0x00,0x40,0x00,0x09,0x01,0x24,0x80,0x00,
  1008. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1009. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,
  1010. X!     0x44,0x08,0x20,0x81,0x88,0xf0,0x4f,0x00,0x09,0x01,0xe4,0xff,
  1011. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1012. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
  1013. X!     0x08,0x44,0x08,0x20,0x81,0x88,0x00,0x48,0x00,0x09,0x01,0x24,
  1014. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1015. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1016. X!     0x04,0x10,0x28,0x08,0x20,0x81,0x08,0x01,0x44,0x00,0x09,0x01,
  1017. X!     0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1018. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1019. X!     0x00,0x04,0x10,0x28,0x10,0x30,0x81,0x08,0x01,0x84,0x80,0x09,
  1020. X!     0x02,0x46,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1021. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1022. X!     0x00,0x00,0x02,0x20,0x10,0x30,0x38,0x81,0x08,0x06,0x83,0xc1,
  1023. X!     0x09,0x06,0xc7,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1024. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1025. X!     0x00,0x00,0x00,0x02,0x20,0x10,0xc0,0x27,0x81,0x08,0xf8,0x00,
  1026. X!     0x3e,0x09,0xf8,0x04,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1027. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1028. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1029. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1030. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1031. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1032. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1033. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1034. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1035. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1036. X!     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
  1037. X  static char Bookman_Demi_bits[] = {
  1038. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1039. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1040. X--- 208,276 ----
  1041. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1042. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1043. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
  1044. X! static char AvantGarde_Book_bits[] = {
  1045. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1046. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1047. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1048. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1049. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1050. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1051. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1052. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1053. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1054. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
  1055. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x01,
  1056. X!     0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
  1057. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1058. X!     0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xc1, 0x00, 0x00, 0x00, 0x00,
  1059. X!     0x01, 0x00, 0x80, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
  1060. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1061. X!     0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x00,
  1062. X!     0x00, 0x01, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
  1063. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1064. X!     0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00,
  1065. X!     0x00, 0x00, 0x01, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
  1066. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1067. X!     0x00, 0x00, 0x00, 0x88, 0x40, 0x40, 0xf0, 0x49, 0x8f, 0x2f, 0x00, 0x80,
  1068. X!     0x4f, 0x1a, 0x3e, 0xc1, 0x07, 0x80, 0x20, 0xe0, 0x03, 0x7c, 0x10, 0x04,
  1069. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1070. X!     0x00, 0x00, 0x00, 0x00, 0x88, 0x40, 0x40, 0x0c, 0xce, 0x10, 0x22, 0x00,
  1071. X!     0x60, 0x70, 0x86, 0xc1, 0x31, 0x18, 0x80, 0x10, 0x18, 0x0c, 0x83, 0x11,
  1072. X!     0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1073. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x81, 0x20, 0x04, 0x4c, 0x20, 0x22,
  1074. X!     0x00, 0x20, 0x60, 0x82, 0x80, 0x11, 0x10, 0x80, 0x1f, 0x08, 0x08, 0x01,
  1075. X!     0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1076. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x81, 0x20, 0x02, 0x48, 0x20,
  1077. X!     0x22, 0x00, 0x10, 0x40, 0x42, 0x00, 0x09, 0x20, 0x80, 0x20, 0x04, 0x90,
  1078. X!     0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1079. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x11, 0x02, 0x48,
  1080. X!     0x20, 0x22, 0xfc, 0x13, 0x40, 0x42, 0x00, 0xf9, 0x3f, 0x9f, 0x40, 0x04,
  1081. X!     0x90, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1082. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x11, 0x02,
  1083. X!     0x48, 0x20, 0x22, 0x00, 0x12, 0x40, 0x42, 0x00, 0x09, 0x00, 0x80, 0x40,
  1084. X!     0x04, 0x90, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1085. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x0a,
  1086. X!     0x02, 0x48, 0x20, 0x42, 0x00, 0x11, 0x40, 0x42, 0x00, 0x09, 0x00, 0x80,
  1087. X!     0x40, 0x04, 0x90, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1088. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
  1089. X!     0x0a, 0x04, 0x4c, 0x20, 0x42, 0x00, 0x21, 0x60, 0x82, 0x80, 0x11, 0x10,
  1090. X!     0x80, 0x40, 0x08, 0x08, 0x01, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1091. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
  1092. X!     0x08, 0x04, 0x0c, 0x4e, 0x20, 0x82, 0xc1, 0x60, 0x70, 0x82, 0xc1, 0x31,
  1093. X!     0x18, 0x80, 0x20, 0x18, 0x0c, 0x83, 0x11, 0x02, 0x00, 0x00, 0x00, 0x00,
  1094. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
  1095. X!     0x00, 0x08, 0x04, 0xf0, 0x49, 0x20, 0x02, 0x3e, 0x80, 0x4f, 0x02, 0x3e,
  1096. X!     0xc1, 0x07, 0x80, 0x1f, 0xe0, 0x03, 0x7c, 0x10, 0x04, 0x00, 0x00, 0x00,
  1097. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1098. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1099. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1100. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1101. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1102. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1103. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1104. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1105. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1106. X!     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  1107. X  static char Bookman_Demi_bits[] = {
  1108. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1109. X      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1110. END_OF_FILE
  1111. if test 9464 -ne `wc -c <'psbits.c.diff'`; then
  1112.     echo shar: \"'psbits.c.diff'\" unpacked with wrong size!
  1113. fi
  1114. # end of 'psbits.c.diff'
  1115. fi
  1116. if test -f 'read1_3.c.diff' -a "${1}" != "-c" ; then 
  1117.   echo shar: Will not clobber existing file \"'read1_3.c.diff'\"
  1118. else
  1119. echo shar: Extracting \"'read1_3.c.diff'\" \(8779 characters\)
  1120. sed "s/^X//" >'read1_3.c.diff' <<'END_OF_FILE'
  1121. X*** read1_3.c.old    Tue Apr 24 11:48:36 1990
  1122. X--- read1_3.c    Wed Apr 18 11:53:15 1990
  1123. X***************
  1124. X*** 34,45 ****
  1125. X  extern char        *sys_errlist[];
  1126. X  extern int        sys_nerr, errno;
  1127. X  
  1128. X! static F_ellipse    *read_ellipseobject();
  1129. X! static F_line        *read_lineobject();
  1130. X! static F_text        *read_textobject();
  1131. X! static F_spline        *read_splineobject();
  1132. X! static F_arc        *read_arcobject();
  1133. X! static F_compound    *read_compoundobject();
  1134. X  
  1135. X  extern int        line_no;
  1136. X  extern int        num_object;
  1137. X--- 34,45 ----
  1138. X  extern char        *sys_errlist[];
  1139. X  extern int        sys_nerr, errno;
  1140. X  
  1141. X! static F_ellipse    *read_1_3_ellipseobject();
  1142. X! static F_line        *read_1_3_lineobject();
  1143. X! static F_text        *read_1_3_textobject();
  1144. X! static F_spline        *read_1_3_splineobject();
  1145. X! static F_arc        *read_1_3_arcobject();
  1146. X! static F_compound    *read_1_3_compoundobject();
  1147. X  
  1148. X  extern int        line_no;
  1149. X  extern int        num_object;
  1150. X***************
  1151. X*** 68,74 ****
  1152. X      while (fscanf(fp, "%d", &object) == 1) {
  1153. X          switch (object) {
  1154. X          case O_POLYLINE :
  1155. X!             if ((l = read_lineobject(fp)) == NULL) return(-1);
  1156. X              if (ll)
  1157. X              ll = (ll->next = l);
  1158. X              else
  1159. X--- 68,74 ----
  1160. X      while (fscanf(fp, "%d", &object) == 1) {
  1161. X          switch (object) {
  1162. X          case O_POLYLINE :
  1163. X!             if ((l = read_1_3_lineobject(fp)) == NULL) return(-1);
  1164. X              if (ll)
  1165. X              ll = (ll->next = l);
  1166. X              else
  1167. X***************
  1168. X*** 76,82 ****
  1169. X              num_object++;
  1170. X              break;
  1171. X          case O_SPLINE :
  1172. X!             if ((s = read_splineobject(fp)) == NULL) return(-1);
  1173. X              if (ls)
  1174. X              ls = (ls->next = s);
  1175. X              else
  1176. X--- 76,82 ----
  1177. X              num_object++;
  1178. X              break;
  1179. X          case O_SPLINE :
  1180. X!             if ((s = read_1_3_splineobject(fp)) == NULL) return(-1);
  1181. X              if (ls)
  1182. X              ls = (ls->next = s);
  1183. X              else
  1184. X***************
  1185. X*** 84,90 ****
  1186. X              num_object++;
  1187. X              break;
  1188. X          case O_ELLIPSE :
  1189. X!             if ((e = read_ellipseobject(fp)) == NULL) return(-1);
  1190. X              if (le)
  1191. X              le = (le->next = e);
  1192. X              else
  1193. X--- 84,90 ----
  1194. X              num_object++;
  1195. X              break;
  1196. X          case O_ELLIPSE :
  1197. X!             if ((e = read_1_3_ellipseobject(fp)) == NULL) return(-1);
  1198. X              if (le)
  1199. X              le = (le->next = e);
  1200. X              else
  1201. X***************
  1202. X*** 92,98 ****
  1203. X              num_object++;
  1204. X              break;
  1205. X          case O_ARC :
  1206. X!             if ((a = read_arcobject(fp)) == NULL) return(-1);
  1207. X              if (la)
  1208. X              la = (la->next = a);
  1209. X              else
  1210. X--- 92,98 ----
  1211. X              num_object++;
  1212. X              break;
  1213. X          case O_ARC :
  1214. X!             if ((a = read_1_3_arcobject(fp)) == NULL) return(-1);
  1215. X              if (la)
  1216. X              la = (la->next = a);
  1217. X              else
  1218. X***************
  1219. X*** 100,106 ****
  1220. X              num_object++;
  1221. X              break;
  1222. X          case O_TEXT :
  1223. X!             if ((t = read_textobject(fp)) == NULL) return(-1);
  1224. X              if (lt)
  1225. X              lt = (lt->next = t);
  1226. X              else
  1227. X--- 100,106 ----
  1228. X              num_object++;
  1229. X              break;
  1230. X          case O_TEXT :
  1231. X!             if ((t = read_1_3_textobject(fp)) == NULL) return(-1);
  1232. X              if (lt)
  1233. X              lt = (lt->next = t);
  1234. X              else
  1235. X***************
  1236. X*** 108,114 ****
  1237. X              num_object++;
  1238. X              break;
  1239. X          case O_COMPOUND :
  1240. X!             if ((c = read_compoundobject(fp)) == NULL) return(-1);
  1241. X              if (lc)
  1242. X              lc = (lc->next = c);
  1243. X              else
  1244. X--- 108,114 ----
  1245. X              num_object++;
  1246. X              break;
  1247. X          case O_COMPOUND :
  1248. X!             if ((c = read_1_3_compoundobject(fp)) == NULL) return(-1);
  1249. X              if (lc)
  1250. X              lc = (lc->next = c);
  1251. X              else
  1252. X***************
  1253. X*** 127,133 ****
  1254. X      }
  1255. X  
  1256. X  static F_arc *
  1257. X! read_arcobject(fp)
  1258. X  FILE    *fp;
  1259. X  {
  1260. X      F_arc    *a;
  1261. X--- 127,133 ----
  1262. X      }
  1263. X  
  1264. X  static F_arc *
  1265. X! read_1_3_arcobject(fp)
  1266. X  FILE    *fp;
  1267. X  {
  1268. X      F_arc    *a;
  1269. X***************
  1270. X*** 137,143 ****
  1271. X      a->type = T_3_POINTS_ARC;
  1272. X      a->color = BLACK;
  1273. X      a->depth = 0;
  1274. X!     a->pen = NULL;
  1275. X      a->for_arrow = NULL;
  1276. X      a->back_arrow = NULL;
  1277. X      a->next = NULL;
  1278. X--- 137,143 ----
  1279. X      a->type = T_3_POINTS_ARC;
  1280. X      a->color = BLACK;
  1281. X      a->depth = 0;
  1282. X!     a->pen = 0;
  1283. X      a->for_arrow = NULL;
  1284. X      a->back_arrow = NULL;
  1285. X      a->next = NULL;
  1286. X***************
  1287. X*** 167,173 ****
  1288. X      }
  1289. X  
  1290. X  static F_compound *
  1291. X! read_compoundobject(fp)
  1292. X  FILE    *fp;
  1293. X  {
  1294. X      F_arc        *a, *la = NULL;
  1295. X--- 167,173 ----
  1296. X      }
  1297. X  
  1298. X  static F_compound *
  1299. X! read_1_3_compoundobject(fp)
  1300. X  FILE    *fp;
  1301. X  {
  1302. X      F_arc        *a, *la = NULL;
  1303. X***************
  1304. X*** 195,201 ****
  1305. X      while (fscanf(fp, "%d", &object) == 1) {
  1306. X          switch (object) {
  1307. X          case O_POLYLINE :
  1308. X!             if ((l = read_lineobject(fp)) == NULL) { 
  1309. X              free_line(&l);
  1310. X              return(NULL);
  1311. X              }
  1312. X--- 195,201 ----
  1313. X      while (fscanf(fp, "%d", &object) == 1) {
  1314. X          switch (object) {
  1315. X          case O_POLYLINE :
  1316. X!             if ((l = read_1_3_lineobject(fp)) == NULL) { 
  1317. X              free_line(&l);
  1318. X              return(NULL);
  1319. X              }
  1320. X***************
  1321. X*** 205,211 ****
  1322. X              ll = com->lines = l;
  1323. X              break;
  1324. X          case O_SPLINE :
  1325. X!             if ((s = read_splineobject(fp)) == NULL) { 
  1326. X              free_spline(&s);
  1327. X              return(NULL);
  1328. X              }
  1329. X--- 205,211 ----
  1330. X              ll = com->lines = l;
  1331. X              break;
  1332. X          case O_SPLINE :
  1333. X!             if ((s = read_1_3_splineobject(fp)) == NULL) { 
  1334. X              free_spline(&s);
  1335. X              return(NULL);
  1336. X              }
  1337. X***************
  1338. X*** 215,221 ****
  1339. X              ls = com->splines = s;
  1340. X              break;
  1341. X          case O_ELLIPSE :
  1342. X!             if ((e = read_ellipseobject(fp)) == NULL) { 
  1343. X              free_ellipse(&e);
  1344. X              return(NULL);
  1345. X              }
  1346. X--- 215,221 ----
  1347. X              ls = com->splines = s;
  1348. X              break;
  1349. X          case O_ELLIPSE :
  1350. X!             if ((e = read_1_3_ellipseobject(fp)) == NULL) { 
  1351. X              free_ellipse(&e);
  1352. X              return(NULL);
  1353. X              }
  1354. X***************
  1355. X*** 225,231 ****
  1356. X              le = com->ellipses = e;
  1357. X              break;
  1358. X          case O_ARC :
  1359. X!             if ((a = read_arcobject(fp)) == NULL) { 
  1360. X              free_arc(&a);
  1361. X              return(NULL);
  1362. X              }
  1363. X--- 225,231 ----
  1364. X              le = com->ellipses = e;
  1365. X              break;
  1366. X          case O_ARC :
  1367. X!             if ((a = read_1_3_arcobject(fp)) == NULL) { 
  1368. X              free_arc(&a);
  1369. X              return(NULL);
  1370. X              }
  1371. X***************
  1372. X*** 235,241 ****
  1373. X              la = com->arcs = a;
  1374. X              break;
  1375. X          case O_TEXT :
  1376. X!             if ((t = read_textobject(fp)) == NULL) { 
  1377. X              free_text(&t);
  1378. X              return(NULL);
  1379. X              }
  1380. X--- 235,241 ----
  1381. X              la = com->arcs = a;
  1382. X              break;
  1383. X          case O_TEXT :
  1384. X!             if ((t = read_1_3_textobject(fp)) == NULL) { 
  1385. X              free_text(&t);
  1386. X              return(NULL);
  1387. X              }
  1388. X***************
  1389. X*** 245,251 ****
  1390. X              lt = com->texts = t;
  1391. X              break;
  1392. X          case O_COMPOUND :
  1393. X!             if ((c = read_compoundobject(fp)) == NULL) { 
  1394. X              free_compound(&c);
  1395. X              return(NULL);
  1396. X              }
  1397. X--- 245,251 ----
  1398. X              lt = com->texts = t;
  1399. X              break;
  1400. X          case O_COMPOUND :
  1401. X!             if ((c = read_1_3_compoundobject(fp)) == NULL) { 
  1402. X              free_compound(&c);
  1403. X              return(NULL);
  1404. X              }
  1405. X***************
  1406. X*** 267,273 ****
  1407. X      }
  1408. X  
  1409. X  static F_ellipse *
  1410. X! read_ellipseobject(fp)
  1411. X  FILE    *fp;
  1412. X  {
  1413. X      F_ellipse    *e;
  1414. X--- 267,273 ----
  1415. X      }
  1416. X  
  1417. X  static F_ellipse *
  1418. X! read_1_3_ellipseobject(fp)
  1419. X  FILE    *fp;
  1420. X  {
  1421. X      F_ellipse    *e;
  1422. X***************
  1423. X*** 277,283 ****
  1424. X      e->color = BLACK;
  1425. X      e->angle = 0.0;
  1426. X      e->depth = 0;
  1427. X!     e->pen = NULL;
  1428. X      e->area_fill = NULL;
  1429. X      e->next = NULL;
  1430. X      n = fscanf(fp," %d %d %d %f %d %d %d %d %d %d %d %d %d\n", 
  1431. X--- 277,283 ----
  1432. X      e->color = BLACK;
  1433. X      e->angle = 0.0;
  1434. X      e->depth = 0;
  1435. X!     e->pen = 0;
  1436. X      e->area_fill = NULL;
  1437. X      e->next = NULL;
  1438. X      n = fscanf(fp," %d %d %d %f %d %d %d %d %d %d %d %d %d\n", 
  1439. X***************
  1440. X*** 304,310 ****
  1441. X      }
  1442. X  
  1443. X  static F_line *
  1444. X! read_lineobject(fp)
  1445. X  FILE            *fp;
  1446. X  {
  1447. X      F_line    *l;
  1448. X--- 304,310 ----
  1449. X      }
  1450. X  
  1451. X  static F_line *
  1452. X! read_1_3_lineobject(fp)
  1453. X  FILE            *fp;
  1454. X  {
  1455. X      F_line    *l;
  1456. X***************
  1457. X*** 314,320 ****
  1458. X      Line_malloc(l);
  1459. X      l->color = BLACK;
  1460. X      l->depth = 0;
  1461. X!     l->pen = NULL;
  1462. X      l->area_fill = NULL;
  1463. X      l->for_arrow = NULL;
  1464. X      l->back_arrow = NULL;
  1465. X--- 314,320 ----
  1466. X      Line_malloc(l);
  1467. X      l->color = BLACK;
  1468. X      l->depth = 0;
  1469. X!     l->pen = 0;
  1470. X      l->area_fill = NULL;
  1471. X      l->for_arrow = NULL;
  1472. X      l->back_arrow = NULL;
  1473. X***************
  1474. X*** 362,368 ****
  1475. X      }
  1476. X  
  1477. X  static F_spline *
  1478. X! read_splineobject(fp)
  1479. X  FILE    *fp;
  1480. X  {
  1481. X      F_spline    *s;
  1482. X--- 362,368 ----
  1483. X      }
  1484. X  
  1485. X  static F_spline *
  1486. X! read_1_3_splineobject(fp)
  1487. X  FILE    *fp;
  1488. X  {
  1489. X      F_spline    *s;
  1490. X***************
  1491. X*** 372,378 ****
  1492. X      Spline_malloc(s);
  1493. X      s->color = BLACK;
  1494. X      s->depth = 0;
  1495. X!     s->pen = NULL;
  1496. X      s->area_fill = NULL;
  1497. X      s->for_arrow = NULL;
  1498. X      s->back_arrow = NULL;
  1499. X--- 372,378 ----
  1500. X      Spline_malloc(s);
  1501. X      s->color = BLACK;
  1502. X      s->depth = 0;
  1503. X!     s->pen = 0;
  1504. X      s->area_fill = NULL;
  1505. X      s->for_arrow = NULL;
  1506. X      s->back_arrow = NULL;
  1507. X***************
  1508. X*** 420,426 ****
  1509. X      }
  1510. X  
  1511. X  static F_text *
  1512. X! read_textobject(fp)
  1513. X  FILE    *fp;
  1514. X  {
  1515. X      F_text    *t;
  1516. X--- 420,426 ----
  1517. X      }
  1518. X  
  1519. X  static F_text *
  1520. X! read_1_3_textobject(fp)
  1521. X  FILE    *fp;
  1522. X  {
  1523. X      F_text    *t;
  1524. X***************
  1525. X*** 432,438 ****
  1526. X      t->style = PLAIN;
  1527. X      t->color = BLACK;
  1528. X      t->depth = 0;
  1529. X!     t->pen = NULL;
  1530. X      t->angle = 0.0;
  1531. X      t->next = NULL;
  1532. X      n = fscanf(fp," %d %d %d %d %d %d %d %[^\n]", &t->font, 
  1533. X--- 432,438 ----
  1534. X      t->style = PLAIN;
  1535. X      t->color = BLACK;
  1536. X      t->depth = 0;
  1537. X!     t->pen = 0;
  1538. X      t->angle = 0.0;
  1539. X      t->next = NULL;
  1540. X      n = fscanf(fp," %d %d %d %d %d %d %d %[^\n]", &t->font, 
  1541. END_OF_FILE
  1542. if test 8779 -ne `wc -c <'read1_3.c.diff'`; then
  1543.     echo shar: \"'read1_3.c.diff'\" unpacked with wrong size!
  1544. fi
  1545. # end of 'read1_3.c.diff'
  1546. fi
  1547. echo shar: End of archive 4 \(of 6\).
  1548. cp /dev/null ark4isdone
  1549. MISSING=""
  1550. for I in 1 2 3 4 5 6 ; do
  1551.     if test ! -f ark${I}isdone ; then
  1552.     MISSING="${MISSING} ${I}"
  1553.     fi
  1554. done
  1555. if test "${MISSING}" = "" ; then
  1556.     echo You have unpacked all 6 archives.
  1557.     rm -f ark[1-9]isdone
  1558. else
  1559.     echo You still need to unpack the following archives:
  1560.     echo "        " ${MISSING}
  1561. fi
  1562. ##  End of shell archive.
  1563. exit 0
  1564.  
  1565. dan
  1566. -----------------------------------------------------------
  1567.             O'Reilly && Associates
  1568.         argv@sun.com / argv@ora.com
  1569.        632 Petaluma Ave, Sebastopol, CA 95472 
  1570.      800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104
  1571.     Opinions expressed reflect those of the author only.
  1572.